/*
    Carracci Systems - Carracci Server (openbam project)
    Copyright (C) 2007  Carracci Systems

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/


package org.openbam.core.expr;

import java.util.Date;

/**
 * Convert a long number to a date. The number should be UTC time represented in 
 * milliseconds since Jan 1, 1970.
 * @author inder
 *
 */
public class ToDate extends UnaryExpression implements IFunction {

	
	public ToDate() {
		super.setName("ToDate");
	}

	protected Object operate(Object operand) {
		Double d = TypeConvertor.doubleValue(operand);
		Date date = new Date(d.longValue());
		super.value = date;
		return date;
	}

	public IExpression newInstance() {
		ToDate todate = new ToDate();
		todate.operand = this.operand.newInstance();
		return todate;
	}
	
}
